<script setup>
import {  getHotGoodsForBannerAPI } from '@/apis/home'
import { ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'

// 获取轮播图数据
const bannerList = ref([])

const getBanner = async () => {
  try {
    // 调用 API，请求 3 个热销商品（可根据轮播图需求调整数量）
    const res = await getHotGoodsForBannerAPI(3)

    // 校验接口返回（需与后端统一的响应格式匹配）
    // 后端返回格式：{code: 200, success: true, msg: "...", data: [商品数组]}
    if (res.code === 200 && res.success && Array.isArray(res.data)) {
      // 转换数据格式：将商品的 pic 字段映射为轮播图需要的 imgUrl
      bannerList.value = res.data.map(good => ({
        id: good.id,          // 轮播项唯一标识（必须，用于 el-carousel-item 的 key）
        imgUrl: good.pic,     // 轮播图图片 URL（核心，对应商品的 pic 字段）
        name: good.name       // 商品名（用于图片 alt 文本，优化 SEO 和体验）
      }))
      console.log('轮播图数据加载成功：', bannerList.value)
    } else {
      // 无数据时的处理
      bannerList.value = []
      ElMessage({ type: 'info', message: res.msg || '暂无热销商品' })
    }
  } catch (error) {
    // 接口请求失败的处理
    bannerList.value = []
    ElMessage({ type: 'error', message: '轮播图数据加载失败，请稍后重试' })
    console.error('轮播图接口请求错误：', error)
  }
}

onMounted(() => {
  console.log("HomeBanner组件已挂载，开始加载数据")
  getBanner()
})
</script>

<template>
  <div class="home-banner">
    <el-carousel height="500px">
      <el-carousel-item v-for="item in bannerList" :key="item.id">
        <img :src="item.imgUrl" alt="" />
      </el-carousel-item>
    </el-carousel>
  </div>
</template>

<style scoped lang="scss">
.home-banner {
  width: 1240px;
  height: 500px;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 98;

  img {
    width: 100%;
    height: 500px;
  }
}
</style>
